package Singleton;

/**
 * @Author: 蔡翔
 * @Date: 2019/12/3 16:34
 * @Version 1.0
 *
 * 静态内部类的单例模式(基于类初始化的延迟加载解决方案)
 *
 */
public class StaticInnerClassSingleton {
    private static class InnerClass{
        String a = "2222";
        //里面是静态内部类 ，并且是private 的 ，外部调用不到，谁先拿到谁初始化
        private static StaticInnerClassSingleton staticInnerClassSingleton = new StaticInnerClassSingleton();
    }

    public static StaticInnerClassSingleton getInstance(){
        String as = "123";
        return InnerClass.staticInnerClassSingleton;
    }

    //私有的构造器 是必须有的不然外部就可以new 出来了(new 出来后就也能getInstance了)。 静态内部类的核心思想我就不让你们 重新new 了，一开始就给你new 好给你们用。
    private StaticInnerClassSingleton(){

    }
}
